package com.tedu.api.list;

import org.junit.Test;

import javax.swing.*;
import java.util.LinkedList;
import java.util.List;

/**
 * List子接口---两个实现类
 * ArrayList实现类：数组实现---查询快，增删慢---使用集合
 *
 *  链表实现集合
 *  LinkedList实现类：双向链表是西安---查询满，增删块--【元素增删操作多】
 *
 *  ArrayList实现类与LinkedList实现类大部分方法完全一致
 *  添加add()  删除remove()   获取get()
 *  获取集合长度size()   清空集合clear()
 *  ------------------------------------
 *  ArrayList实现类与LinkedList实现类部分方法不一致
 *  方法补充：indexOf()   lastIndexOf()
 *  addFirst(E e)
 *  addFirst(E e)
 *  addFast()
 *  removeFirst()
 *  removeFast()
 *
 *
 */
public class LinkedListAPI {
    /**      ArrayList/LinkedList              LinkedList
     * 方法补充：indexOf()               lastIndexOf()
     */
    @Test
    public void testIndexOf(){
        //创建LinkedList双向链接集合对象
        List<String> listlinked=new LinkedList<>();
        listlinked.add("三支");
        listlinked.add("龙虎斗");
        listlinked.add("庵堂");
        listlinked.add("螺狮粉");
        /** 补充方法
         * List子接口方法--ArrayList ，LinkedList均可以使用
         * indexOf(E  e)   返回值：int
         * 作用：返回元素指定下标位，如果找不到，返回-1
         *
         */
        int threeIndex=listlinked.indexOf("庵堂");
        //调用父级List的indexOf方法   多态
        System.out.println("通过指定元素获取到下标位："+threeIndex);
        /**LinkedList独有方法
         * LastIndexOf(E  e)    返回值：int
         * 作用：找到最后一个元素的位置，如果元素不存在   返回-1
         *
         *
         */
        int lastIndex=listlinked.lastIndexOf("螺狮粉");
        //调用子类实现类lastIndexOf方
        //
        // 法
        System.out.println("LinkedList的查询最后一个元素下标位:"+lastIndex);
    }

}
